/******************************************************************************\
 *                                                                              *
 *     File: Huwelijk.cc                                                        *
 *                                                                              *
 *   Author: Jan Meuleman / Douwe A. van Twillert                               *
 *  Purpose: de definitie (implementatie) van de klasse Huwelijk                *
 *  Version: 1.0      MEM 20020124                                              *
 *           - eerste versie                                                    *
 *  Version: 1.1      TWI 20080220                                              *
 *           - header aangepast voor duidelijk kunnen printen                   *
 *           - kleine aanpassingen om het half werkend te krijgen               *
 *                                                                              *
\******************************************************************************/

#include <assert.h>
#include "Huwelijk.h"
#include "Persoon.h"

Huwelijk::Huwelijk(Persoon* persoon1, Persoon* persoon2, int huwelijksjaar) {
    assert(persoon1 != NULL && persoon2 != NULL);
    assert(persoon1 != persoon2);
    assert((huwelijksjaar - persoon1->getGeboortejaar() >= 18) && (huwelijksjaar - persoon2->getGeboortejaar() >= 18));
    
    this->persoon1 = persoon1;
    this->persoon2 = persoon2;
    this->huwelijksjaar = huwelijksjaar;

    persoon1->setHuwelijk(this);
    persoon2->setHuwelijk(this);
}

Huwelijk::~Huwelijk() {
    //geen "new" in deze klasse, dus geen destructor nodig.
}

Persoon* Huwelijk::getPersoon1() {
    return persoon1;
}

Persoon* Huwelijk::getPersoon2() {
    return persoon2;
}

int Huwelijk::getHuwelijksjaar() {
    return huwelijksjaar;
}

void Huwelijk::maakBaby(Persoon* baby) {
    assert(baby != NULL);
    assert(this->baby == NULL);
    this->baby = baby;
    persoon1->setBaby(baby);
    persoon2->setBaby(baby);
}

Persoon* Huwelijk::getBaby() {
    return baby;
}

void Huwelijk::drukAf() {
    cout << "Huwelijk tussen: " << persoon1->getNaam() << " en " << persoon2->getNaam() << " in het jaar " << huwelijksjaar << endl;
}
